package com.ruoyi.voit.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 充电桩设备信息对象 charging_pile
 * 
 * @author ruoyi
 * @date 2025-07-17
 */
public class ChargingPile extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 充电桩唯一标识（UUID） */
    private String pileId;

    /** 地理位置坐标（用于地图定位和附近搜索） */
    @Excel(name = "地理位置坐标", readConverterExp = "用=于地图定位和附近搜索")
    private String location;

    /** 在线状态 */
    @Excel(name = "在线状态")
    private String status;

    /** 健康状态 */
    @Excel(name = "健康状态")
    private String healthStatus;

    /** 异常状态 */
    @Excel(name = "异常状态")
    private Integer errorStatus;

    /** 最后检测时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后检测时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastCheckTime;

    /** 详细物理地址 */
    @Excel(name = "详细物理地址")
    private String address;

    public void setPileId(String pileId) 
    {
        this.pileId = pileId;
    }

    public String getPileId() 
    {
        return pileId;
    }

    public void setLocation(String location) 
    {
        this.location = location;
    }

    public String getLocation() 
    {
        return location;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setHealthStatus(String healthStatus) 
    {
        this.healthStatus = healthStatus;
    }

    public String getHealthStatus() 
    {
        return healthStatus;
    }

    public void setErrorStatus(Integer errorStatus) 
    {
        this.errorStatus = errorStatus;
    }

    public Integer getErrorStatus() 
    {
        return errorStatus;
    }

    public void setLastCheckTime(Date lastCheckTime) 
    {
        this.lastCheckTime = lastCheckTime;
    }

    public Date getLastCheckTime() 
    {
        return lastCheckTime;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("pileId", getPileId())
            .append("location", getLocation())
            .append("status", getStatus())
            .append("healthStatus", getHealthStatus())
            .append("errorStatus", getErrorStatus())
            .append("lastCheckTime", getLastCheckTime())
            .append("address", getAddress())
            .toString();
    }
}
